<?php


namespace app;

require_once '../vendor/aliyuncs/oss-sdk-php/autoload.php';

use OSS\OssClient;
use think\facade\Log;

class AliOosFile
{
    /*
    * 图片上传，将图片上传至阿里云oss
    * */
    public function upload($file, $object)
    {
        // $files = $_FILES['file'];
        //$name = $files['name'];
        //$format = strrchr($name, '.');//截取文件后缀名如 (.jpg)
        // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
        $accessKeyId = "LTAI4G5M8oAJLrRtM6EwUJPZ";
        $accessKeySecret = "UDrNrqKqfy0tERDfwQg5gnRQMFmhQA";
        // Endpoint以杭州为例，其它Region请按实际情况填写。
        $endpoint = "http://oss-cn-shenzhen.aliyuncs.com";
        // 设置存储空间名称。
        $bucket = "yunliuns";
        // 设置文件名称。
        //这里是由sha1加密生成文件名 之后连接上文件后缀，生成文件规则根据自己喜好，也可以用md5
        //前面video/head/ 这是我的oss目录
        try {
            $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
//            var_dump($ossClient);
//            exit;
            $result = $ossClient->uploadFile($bucket, $object, $file);
            if ($result) {
                // 删除本地服务器图片
                if (file_exists($file)) {
                    unlink($file);
                }
                return true;
            }
            return false;
        } catch (OssException $e) {
            printf(__FUNCTION__ . ": FAILED\n");
            printf($e->getMessage() . "\n");
            return;
        }
        //print(__FUNCTION__ . ": OK" . "\n");
    }

    /**
     * 删除文件
     */
    public function deletFile($file)
    {
        $accessKeyId = "LTAI4G5M8oAJLrRtM6EwUJPZ";
        $accessKeySecret = "UDrNrqKqfy0tERDfwQg5gnRQMFmhQA";
        // Endpoint以杭州为例，其它Region请按实际情况填写。
        $endpoint = "http://oss-cn-shenzhen.aliyuncs.com";
        // 设置存储空间名称。
        $bucket = "yunliuns";
        // 设置存储空间名称。
        // 设置文件名称。
        //这里是由sha1加密生成文件名 之后连接上文件后缀，生成文件规则根据自己喜好，也可以用md5
        //前面video/head/ 这是我的oss目录
        try {
            $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
            $result = $ossClient->deleteObject($bucket, $file);
            Log::write('删除结果:' . json_encode($result), 'error');
            if (!$result) {
                Log::write('删除失败', 'error');
                return json(['status' => 1, 'message' => '删除失败']);
            } else {
                Log::write('删除成功', 'error');
                return json(['status' => 2, 'message' => '删除成功']);
            }
        } catch (OssException $e) {
            printf(__FUNCTION__ . ": FAILED\n");
            Log::write('删除错误结果:' . $e->getMessage(), 'error');
            printf($e->getMessage() . "\n");
            return;
        }
        print(__FUNCTION__ . ": OK" . "\n");
    }
}